home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / wicked < prev    next >
Text File  |  1995-03-31  |  7KB  |  203 lines

  1. Article 1036 of comp.sys.handhelds:
  2. Path: en.ecn.purdue.edu!noose.ecn.purdue.edu!samsung!uunet!mcsun!hp4nl!charon!cwi.nl
  3. From: jurjen@cwi.nl (Jurjen NE Bos)
  4. Newsgroups: comp.sys.handhelds
  5. Subject: The "wicked" directory on the HP48SX
  6. Message-ID: <1976@charon.cwi.nl>
  7. Date: 20 Aug 90 09:57:41 GMT
  8. Sender: news@cwi.nl
  9. Organization: STORC, Veldhoven
  10. Lines: 189
  11.  
  12. (This is a continuation of my article on empty names)
  13.  
  14.         My wicked, wicked hacks...
  15.  
  16. -------------------------------------------------------------------------------
  17. This is a transcript of a lecture which was part of a meeting held by STORC,
  18. (Stichting Ter Ondersteuning van RPL Calculators) which is the Dutch support-
  19. group for the HP48SX, HP28S and HP28C. STORC publishes a (dutch) magazine,
  20. "STORC Nieuwsbrief", 10 times a year. STORC is managed by Eric Toonen, Jurjen
  21. Bos, Helene Lankreijer and Christ van Willegen.
  22. Telephone in holland: 040-410049.
  23.  
  24. Our address:    STORC p.a. Christ van Willegen
  25.         Dordognelaan 45
  26.         5627 HB  Eindhoven
  27.         The Netherlands
  28. -------------------------------------------------------------------------------
  29.  
  30. In this note you can read:
  31. - About the hidden subdirectory you never knew;
  32. - How binaries > 64 bits are displayed;
  33. - A lot of how the alarms work;
  34. - A lot of how the user-defined keyboard works.
  35.  
  36.     Written by:    Eric Toonen
  37.             Djept-Zuid 6
  38.             5502 RP Veldhoven
  39.             The Netherlands
  40.  
  41. Introduction
  42. ------------
  43. You cannot enter an empty name. When you do, it is discarded from the
  44. commandline. This fact was used by the designers of the HP48SX.
  45.  
  46. What the normal user does not know, is that there is always a subdirectory in
  47. your HOME directory. In this directory, the alarms and userkeys are kept.
  48. I found this out by doing a lot of hacking.
  49.  
  50.  
  51. How to do that...
  52. -----------------
  53. Here is a description, first of
  54. how to get into this directory, and after that, what exactly is in this
  55. directory.
  56.  
  57. To be able to follow these steps, you need a BAG (or POKE) routine, which was
  58. written and posted by Alonzo Gariepy.
  59. Also, you need to know how to enter/exit/operate the internal debugger.
  60.  
  61. If anything goes wrong, type [ON]-[C] and start over. If your machine
  62. crashes, and you get the question "Try to recover memory?" ALWAYS ANSWER
  63. YES!...
  64.  
  65. o Enter the debugger.
  66. o Go to address F0592. Read the first five nibbles: They are of the
  67.   kind "<m><n><o><p>7"
  68.   Check: The "7" must be there!
  69. o Now go to address "F<p><o><n><m>".
  70.   Check: Here you must see "69A20"!
  71. o Now press [+] 60 times.
  72.   Check: Here you must see "69A20FF7"! If these numbers aren't exactly
  73.   most against the colon, press [+] or [-] until you do.
  74. o Now, remember the 5-nibble address you are at. Replace the first
  75.   nibble (must be "F") with "7", and write it down on paper.
  76. o Exit the debugger. You will get in your HOME directory.
  77. o Enter a directory from which you can use BAG (or POKE).
  78. o Now type 20 STWS HEX
  79. o Now type the binary number you wrote down.
  80. o Type #7059Ch
  81. o Now execute your BAG (or POKE).
  82.   Don't panic, you are in a strange directory. Do nothing but these
  83.   steps.
  84. o Type PATH OBJ\-> DROP.
  85.   Check: Level 1 of your stack will contain an empty name, level 2 will
  86.   contain HOME.
  87. o Type SWAP EVAL
  88. o Type 'WICKED' STO
  89.  
  90. Congratulations!
  91. If your machine did not crash during this entire session :-), you will now
  92. have a variable 'WICKED' (shown as 'WICK' on the menu bar) in your HOME
  93. directory. It does not have a directory-score over it, but effectively it
  94. *IS* a directory. This directory has the name '', but now, you can use it, as
  95. the directory 'WICKED'.
  96.  
  97.  
  98. Some facts about WICKED:
  99. ------------------------
  100. If you enter the WICKED directory, you will see no change in the path listing
  101. in your status line.
  102.  
  103. If you are in WICKED, an empty name is added in the PATH list. You will not
  104. see this when you look at the list, but you will when you type LIST\->. I
  105. suggest you not to play a lot with empty names. Doing so on an HP28S gave me
  106. several crashes.
  107.  
  108. Normally, there are three variables in WICKED:
  109. You better not STOre or PURGE these.
  110.  
  111. ALAR:    Alarms
  112. USER:    UserKeys
  113. USER:    UserKeys.CRC
  114.  
  115. Creating any new variables here is ok.
  116. STOring and PURGEing your own variables is ok.
  117.  
  118. Do *NOT* ORDER this directory, or STO or PURGE one of the standard three.
  119.  
  120. The 'Try to recovering memory' software is not able to restore WICKED, so you
  121. have to do that by hand (so: do not lose this article.)
  122. The contents of WICKED will *NEVER* be restored.
  123.  
  124.  
  125. Alarms
  126. ------
  127. Alarms contains information about the alarms you set.
  128. If you have no alarms, it will contain an empty list.
  129. If you have alarms, there will be a list for every alarm set, of the format:
  130.  
  131. { 24-nibble-binary exec }
  132.  
  133. These 24-nibble binaries are displayed as
  134. C# 24 ...value...
  135. (Compare this to C$ 24 ...value... for strings. Note however, that you cannot
  136. ENTER binaries this way.)
  137. The time, date and repeat-count is probably encoded in these binaries.
  138.  
  139. If there is no exec, it is an empty string.
  140.  
  141. Note: I crashed my machine, STOring an ordinary empty list in 'Alarms'. The
  142. alarm I had running was *still* known to the alarm-catalog, but I crashed
  143. acknowledging it.
  144.  
  145. UserKeys
  146. --------
  147. UserKeys contains either an empty list (if you have no user key assignments),
  148. or:
  149. UserKeys contains a list with 49 (one for every key) lists. Every list is for
  150. a key. These lists:
  151. - are empty if you have no additional assignments on the key.
  152. - have six (one for every shift status) objects if you have *any*
  153. assignment(s) on the key.
  154.     These six objects:
  155.       - are an empty list if you have no additional assignment on this
  156.     particular shift of the key.
  157.       - have the assignment (name, string, program,...) for this shift.
  158.  
  159. The 49 lists are in the order left to right, top to bottom, and therefore
  160. numeric order (as in the ASN command).
  161.  
  162. The 6 objects are in this order:
  163. 1) unshifted
  164. 2) left-shift
  165. 3) right-shift
  166. 4) alfa
  167. 5) alfa & left-shift
  168. 6) alfa & right-shift
  169.  
  170. I could not find any information on the 'S' (Standard) key assignment.
  171. This is probably handled by a simple flag somewhere in RAM.
  172.  
  173. UserKeys.CRC
  174. ------------
  175. UserKeys.CRC contains the BYTES checksum on the variable 'UserKeys'. Since
  176. the name is CRC (for Cyclic Redundancy Check) you might have now got some
  177. guesses on what the checksum algorithm is.
  178.  
  179. UserKeys will probably be considered 'invalid' when the CRC's don't match?...
  180.  
  181.  
  182. That's all
  183. ---------
  184. Eric Toonen
  185. Djept-Zuid 6
  186. 5502 RP  Veldhoven
  187. The Netherlands
  188.  
  189.             Try to recover memory?
  190.             Just say YES!
  191.  
  192. PS Of course, since Bill Wickes was so nice to post his ASC\-> program, you
  193. can make and empty name by just entering
  194. "82E2000E147" ASC\->
  195. I left the article intact, as I did not write it.
  196. --
  197. |                 | "Never imagine yourself not to be otherwise than what |
  198. | Jurjen N.E. Bos | it might appear to others that what you were or might |
  199. |                 | have been was not otherwise than what you had been    |
  200. |  jurjen@cwi.nl  | would have appeared to them to be otherwise."         |
  201.  
  202.  
  203.